package com.ruoyi.yyq.service.impl;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ruoyi.yyq.domain.CarGesType;
import com.ruoyi.yyq.mapper.CarGasStationTypeMapper;
import com.ruoyi.yyq.domain.CarGasStationType;
import com.ruoyi.yyq.mapper.CarGesTypeMapper;
import com.ruoyi.yyq.service.ICarGasStationTypeService;

/**
 * 加油站和汽油种类中间Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-05-12
 */
@Service
public class CarGasStationTypeServiceImpl implements ICarGasStationTypeService 
{
    @Autowired
    private CarGasStationTypeMapper carGasStationTypeMapper;
    @Autowired
    private CarGesTypeMapper carGesTypeMapper;

    /**
     * 查询加油站和汽油种类中间
     * 
     * @param id 加油站和汽油种类中间主键
     * @return 加油站和汽油种类中间
     */
    @Override
    public CarGasStationType selectCarGasStationTypeById(Long id)
    {
        return carGasStationTypeMapper.selectCarGasStationTypeById(id);
    }

    /**
     * 查询加油站和汽油种类中间列表
     * 
     * @param carGasStationType 加油站和汽油种类中间
     * @return 加油站和汽油种类中间
     */
    @Override
    public List<CarGasStationType> selectCarGasStationTypeList(CarGasStationType carGasStationType)
    {
        List<CarGasStationType> carGasStationTypes = carGasStationTypeMapper.selectCarGasStationTypeList(carGasStationType);
//       循环carGasStationTypes
        Iterator<CarGasStationType> iterator = carGasStationTypes.iterator();
        while (iterator.hasNext()) {
            CarGasStationType carGasStationType1 = iterator.next();
            Long id = carGasStationType1.getGasTypeId();
            CarGesType carGesType = carGesTypeMapper.selectCarGesTypeById(id);

            // 如果 deleted 不等于 0，移除该元素
            if (carGesType != null && carGesType.getDeleted() != 0) {
                iterator.remove(); // ✅ 安全删除
            }
        }
        return carGasStationTypes;
    }

    /**
     * 新增加油站和汽油种类中间
     * 
     * @param carGasStationType 加油站和汽油种类中间
     * @return 结果
     */
    @Override
    public int insertCarGasStationType(CarGasStationType carGasStationType)
    {
        return carGasStationTypeMapper.insertCarGasStationType(carGasStationType);
    }

    /**
     * 修改加油站和汽油种类中间
     * 
     * @param carGasStationType 加油站和汽油种类中间
     * @return 结果
     */
    @Override
    public int updateCarGasStationType(CarGasStationType carGasStationType)
    {
        return carGasStationTypeMapper.updateCarGasStationType(carGasStationType);
    }

    /**
     * 批量删除加油站和汽油种类中间
     * 
     * @param ids 需要删除的加油站和汽油种类中间主键
     * @return 结果
     */
    @Override
    public int deleteCarGasStationTypeByIds(Long[] ids)
    {
        return carGasStationTypeMapper.deleteCarGasStationTypeByIds(ids);
    }

    /**
     * 删除加油站和汽油种类中间信息
     * 
     * @param id 加油站和汽油种类中间主键
     * @return 结果
     */
    @Override
    public int deleteCarGasStationTypeById(Long id)
    {
        return carGasStationTypeMapper.deleteCarGasStationTypeById(id);
    }

    @Override
    public Double selectPriceByStationAndType(Long gasStationId, Long gasTypeId) {
        CarGasStationType condition = new CarGasStationType();
        condition.setGasStationId(gasStationId);
        condition.setGasTypeId(gasTypeId);

        List<CarGasStationType> list = carGasStationTypeMapper.selectCarGasStationTypeList(condition);

        if (list != null && !list.isEmpty()) {
            return list.get(0).getPrice();
        }
        return null;
    }
}
